
package com.huaweicloud.saaslanding.install.dto;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.experimental.Accessors;

/**
 * 服务管理框架
 *
 * @since 2022-10-27
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@ToString(callSuper = true)
@EqualsAndHashCode
@Accessors(chain = true)
public class ServiceManageFrameworkDto {

    /**
     * 以下为所有微服务构造配置项都需要的数据
     */
    // 应用名
    private String appName;

    // 微服务名
    private String serviceName;

    // 组件标记
    private String label;

    // 组件id
    private Long componentId;

    // 微服务端口
    private Integer serverPort;

    // 微服务访问前缀
    private String servletPath;

    // oneaccess 域名
    private String domain;

    // rds ip
    private String rdsIp;

    // rds-port
    private int rdsPort;

    // rds-database
    private String rdsDatabase;

    // rds-userName
    private String rdsUserName;

    // rds-password(加密后)
    private String rdsPassword;

    // druid-password(加密后)
    private String druidPassword;

    // skyWalking前端上报地址
    private String skyWalkingUiReportHost;

    // ssl-keyPassword(加密后)
    private String keyStorePwd;

    // ssl-trustPassword(加密后)
    private String trustStorePwd;

    // ssl-秘钥库位置
    private String keyStorePath;

    // ssl-信任库位置
    private String trustStorePath;

    // ssl-enable
    private Boolean sslEnable;

    /**
     * 以下为网关微服务构造配置项需要的数据
     */
    // 租户微服务名
    private String tenantName;

    // 租户微服务访问前缀
    private String tenantPath;

    // 授权微服务名
    private String authorityName;

    // 授权微服务访问前缀
    private String authorityPath;

    // 部署微服务名
    private String deploymentName;

    // 部署微服务访问前缀
    private String deploymentPath;

    // 升级微服务名
    private String upgradeName;

    // 升级微服务访问前缀
    private String upgradePath;

    // 运维微服务名
    private String maintenanceName;

    // 运维微服务访问前缀
    private String maintenancePath;

    // 运维微服务名
    private String authName;

    // 运维微服务访问前缀
    private String authPath;

    // 集成开发微服务名
    private String integratedName;

    // 集成开发微服务访问前缀
    private String integratedPath;

    // 日志微服务名
    private String logName;

    // 日志微服务访问前缀
    private String logPath;

    // 计量微服务名
    private String measurementName;

    // 计量微服务访问前缀
    private String measurementPath;

    // 运营微服务名
    private String operationName;

    // 运营微服务访问前缀
    private String operationPath;

    // 计量微服务名
    private String jobName;

    // 计量微服务访问前缀
    private String jobPath;

    /**
     * 以下为nacos需要的参数配置
     */
    // namespaceId
    private String namespaceId;

    // 系统启动方式(集群/单机)
    private String nacosMode;

    // 集群地址
    private String nacosServers;

    // 支持IP还是域名模式
    private String preferHostMode;

    // 运行端口
    private Integer nacosServerPort;

    // 多网卡模式下可以指定IP
    private String nacosServerIp;

    private String active;

    // ingress名称
    private String ingressClassName;

    private Boolean wafEnabled;

    private Boolean cdnEnabled;

}
